#!/usr/bin/env python
#-*-coding:utf-8-*-

# "reminder.py" is part of FReminder
# (http://jbc-mini-projects.googlecode.com/svn/trunk/python/freminder/)
# Copyright (C) - 2010 Juan B Cabral <jbc dot develop at gmail dot com>

# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.

# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.


################################################################################
# DOCS
################################################################################

"""FReminder app (For My Love)"""


################################################################################
# META
################################################################################

__version__ = "0.1"
__license__ = "LGPL3"
__author__ = "JBC"
__since__ = "0.1"
__date__ = "2010-03-21"


################################################################################
# IMPORTS
################################################################################

import smtplib
import sys
import os

from PyQt4 import QtGui
from PyQt4.QtCore import Qt

import qtbuilder

try:
    import frconf
except ImportError:
    path = "%s%sfrconf.py" % (sys.path[0], os.path.sep)
    r_conf = open(path, "w")
    r_conf.write("# Configuration for freminder.py\n"
                 "# GPLv3\n\n"
                 "DB = \"\" #put email here\n"
                 "USER = \"\" #put your name here\n")
    r_conf.close()
    print "Configure %s" % path
    sys.exit(1)


################################################################################
# CONSTANTS
################################################################################

_BUILDER = qtbuilder.QtBuilder()

_SMTP_SERVER = "smtp.gmail.com:587"
_SMTP_USER = "Y2FybGl0b3MucmVtaW5kZXJAZ21haWwuY29t\n"
_SMTP_PASS = "Y2FybGl0b3MxMjM=\n"

################################################################################
# CONF
################################################################################

_BUILDER.add_from_file("%s%sfreminder.ui" % (sys.path[0], os.path.sep))


################################################################################
# FUNCTIONS
################################################################################

class FReminder(QtGui.QMainWindow):
    
    def __init__(self, parent=None):
        super(FReminder, self).__init__(parent)
        self.ui = _BUILDER.get_object("Ui_MainWindow")
        self.ui.setupUi(self)
        
    def on_pushButton_released(self):
        message = unicode(self.ui.msg.toPlainText())
        header  = u"From: %s (Reminder)" % frconf.USER
        header += u"To: %s\n" % frconf.DB
        subject = message.replace("\n", " ")
        if len(subject) > 30:
            subject =  message[:30] + "..."
        header += u"Subject: REMIND TO %s - %s\n\n" % (frconf.USER, subject)
        message = header + message
        server = smtplib.SMTP(_SMTP_SERVER)
        server.starttls()
        server.login(_SMTP_USER.decode("base64"),_SMTP_PASS.decode("base64"))
        server.sendmail(_SMTP_USER.decode("base64"), frconf.DB, message)
        server.quit()


################################################################################
# MAIN
################################################################################

if __name__ == "__main__":
    myapp = FReminder()
    myapp.show()
    _BUILDER.start_app()
